#pragma once
#include "ZuiLib.h"
#include "LRefObject.h"

namespace ZuiLib {

class LProgress :public LRefObject<ZProgress>
{
public:

	int isHorizontal(LuaFuncState& L)
	{
		return L.lreturn(pThis->IsHorizontal());
	}

	int setHorizontal(LuaFuncState& L)
	{
		pThis->SetHorizontal(L.arg(0).toBool());
		return 0;
	}

	int getMinValue(LuaFuncState& L)
	{
		return L.lreturn(pThis->GetMinValue());
	}

	int setMinValue(LuaFuncState& L)
	{
		pThis->SetMinValue(L.arg(0).toInt());
		return 0;
	}

	int getMaxValue(LuaFuncState& L)
	{
		return L.lreturn(pThis->GetMaxValue());
	}

	int setMaxValue(LuaFuncState& L)
	{
		pThis->SetMaxValue(L.arg(0).toInt());
		return 0;
	}

	int getValue(LuaFuncState& L)
	{
		return L.lreturn(pThis->GetValue());
	}

	int setValue(LuaFuncState& L)
	{
		pThis->SetValue(L.arg(0).toInt());
		return 0;
	}

	int getForeImage(LuaFuncState& L)
	{
		return L.lreturn(pThis->GetForeImage());
	}

	int setForeImage(LuaFuncState& L)
	{
		pThis->SetForeImage(L.arg(0).toString());
		return 0;
	}

	BEGIN_MAP_FUNC(LProgress)
	DECLARE_FUNC(isHorizontal),
	DECLARE_FUNC(setHorizontal),
	DECLARE_FUNC(getMinValue),
	DECLARE_FUNC(setMinValue),
	DECLARE_FUNC(getMaxValue),
	DECLARE_FUNC(setMaxValue),
	DECLARE_FUNC(getValue),
	DECLARE_FUNC(setValue),
	DECLARE_FUNC(getForeImage),
	DECLARE_FUNC(setForeImage),
	END_MAP_FUNC
};

}//namespace
